Women in Headlines Data
The data taken involved the frequency of words used sorted by theme and frequency of words by country. The themes are crime and violence, empowerment, female stereotypes, people and places, race, ethnicity and identity, and no theme. The words were also ranked by theme based on frequency of use. The news sites were also assigned values for bias and polarity for individiual articles and overall. The sites were given a base polarity for all articles and a polarity for their articles that discuss women. Here are a few examples of real headlines published by news sites.

Words Appearing in Headlines
Freqency per Theme
A cumulative bar graph for the words used to describe women used in headlines. They are divided into 5 main categories with crime and violence having the most words and the highest frequency. The graph is interactive so each word can be highlighted with the individual word and frequency.
Top Five Words per Theme
The words taken from headlines across different news sites were sorted into theme categories and ranked by occurrence. The following column chart describes the top five words used sorted by theme with the word ‘man’ appearing almost triple the average word use. Crime and violence have the highest average word count of any theme.

Data taken by Country
Country Map
Data was taken from news sites from four different countries with varying numbers of news sources used. From the United States of America, 86 new sites were used. From the United Kingdom, 41 news sites were used. From South Africa, 23 news sites were used. From India, 36 news sites were used.

Bias Score by Country
The average bias of news sites often varies from the minimum and maximum bias values given to different headlines. The following column chart displays the mean bias by country along with the maximum bias of a headline published by a site in the country. The minimum bias score is zero for all countries so no visual representation was added.

Polarity of Words
Polarity over Time
In this graph, we visualize how the polarity of headlines has changed over the past ten years. The polarity scores represent how sensationalized a headline is. Sensational headlines sacrifice accuracy in an attempt to provoke an emotional response from readers. They are designed to generate interest through emotional manipulation. In general, the polarity of news headlines about women is higher than the polarity for other headlines. In the past ten years, polarity has increased, and the difference between the polarity of headlines about women and the polarity of general headlines has widened.

Polarity of News Sites
In the graph below, the difference in the average polarity score between headlines about women and other headlines are shown for each site. The sites are ordered by the largest average polarity of headlines about women. Almost every site’s headlines about women are more polarizing than their headlines about other topics.

Headline Examples
| Headline |
Site |
Country |
Bias |
| 'Lady Bird' buzzes through young sexuality |
iol.co.za |
South Africa |
0 |
| American Woman, Divorced From Saudi Husband, Is Trapped in Saudi Arabia |
msn.com |
India |
0 |
| 'SA poorer without her' SACP reacts to Madikizela Mandela's death |
News24.com |
South Africa |
0 |
| Headline |
Site |
Country |
Bias |
| Girl with severe eczema told her mum she 'didn't want to look at herself in the mirror' she's now a model |
manchestereveningnews.co.uk |
UK |
1.000 |
| A Mother Said Her 9 Year Old Daughter Killed Herself Because She Was Bullied For Being Friends With A White Boy |
buzzfeed.com |
UK |
0.833 |
| Woman reunited with her long lost brother reveals surprise as she discovers she's now her SISTER |
dailyrecord.co.uk |
UK |
0.833 |
LS0tCnRpdGxlOiAiSGVhZGxpbmVzIgphdXRob3I6Ci0gbmFtZTogIkF1ZHJleSBTbXljemVrIgotIG5hbWU6ICJFbGxlcnkgSXNsYW5kIgpkYXRlOiAiNC8yOC8yMDIyIgpvdXRwdXQ6IAogIGh0bWxfZG9jdW1lbnQ6CiAgICB0b2M6IHRydWUKICAgIHRvY19mbG9hdDogdHJ1ZQogICAgZGZfcHJpbnQ6IHBhZ2VkCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlCi0tLQoKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0UsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkKYGBgCgpgYGB7ciBsaWJyYXJpZXMsIGVjaG89RkFMU0UsIHdhcm5pbmcgPSBGQUxTRSwgbWVzc2FnZT1GQUxTRX0KbGlicmFyeSh0aWR5dmVyc2UpICAgICAjIGZvciBncmFwaGluZyBhbmQgZGF0YSBjbGVhbmluZwpsaWJyYXJ5KGx1YnJpZGF0ZSkgICAgICMgZm9yIGRhdGUgbWFuaXB1bGF0aW9uCmxpYnJhcnkoZ2d0aGVtZXMpICAgICAgIyBmb3IgZXZlbiBtb3JlIHBsb3R0aW5nIHRoZW1lcwpsaWJyYXJ5KGdnYW5pbWF0ZSkgICAgICMgZm9yIGFkZGluZyBhbmltYXRpb24gbGF5ZXJzIHRvIGdncGxvdHMKbGlicmFyeShSQ29sb3JCcmV3ZXIpICAjIGZvciBjb2xvciBwYWxldHRlcwpsaWJyYXJ5KHZpcmlkaXMpCmxpYnJhcnkocGxvdGx5KSAgICAgICAgIyBmb3IgdGhlIGdncGxvdGx5KCkgLSBiYXNpYyBpbnRlcmFjdGl2aXR5CmxpYnJhcnkoZ2dhbmltYXRlKSAgICAgIyBmb3IgYWRkaW5nIGFuaW1hdGlvbiBsYXllcnMgdG8gZ2dwbG90cwpsaWJyYXJ5KHRyYW5zZm9ybXIpICAgICMgZm9yICJ0d2VlbmluZyIgKGdnYW5pbWF0ZSkKbGlicmFyeShnaWZza2kpICAgICAgICAjIG5lZWQgdGhlIGxpYnJhcnkgZm9yIGNyZWF0aW5nIGdpZnMgYnV0IGRvbid0IG5lZWQgdG8gbG9hZCBlYWNoIHRpbWUKbGlicmFyeShndCkKbGlicmFyeShtYXBzKQpsaWJyYXJ5KGdnbWFwKQp0aGVtZV9zZXQodGhlbWVfbWluaW1hbCgpKSAjIE15IGZhdm9yaXRlIGdncGxvdCgpIHRoZW1lIDopCmBgYAoKYGBge3IsIGVjaG89RkFMU0UsICB3YXJuaW5nID0gRkFMU0UsIHJlc3VsdHM9RkFMU0UsIGNvbW1lbnQ9RkFMU0V9CmZyZXFfdGhlbWVfd29yZHMgPC0gcmVhZC5jc3YoImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS90aGUtcHVkZGluZy9kYXRhL21hc3Rlci93b21lbi1pbi1oZWFkbGluZXMvd29yZF90aGVtZXNfZnJlcS5jc3YiKQpmcmVxX2NvdW50cnlfd29yZHMgPC0gcmVhZC5jc3YoImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS90aGUtcHVkZGluZy9kYXRhL21hc3Rlci93b21lbi1pbi1oZWFkbGluZXMvd29yZF9jb3VudHJ5X2ZyZXEuY3N2IikKaGVhZGxpbmVfc2l0ZSA8LSByZWFkLmNzdigiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZS1wdWRkaW5nL2RhdGEvbWFzdGVyL3dvbWVuLWluLWhlYWRsaW5lcy9oZWFkbGluZXNfc2l0ZS5jc3YiKQp3b3JkX3RoZW1lX3JhbmsgPC0gcmVhZC5jc3YoImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS90aGUtcHVkZGluZy9kYXRhL21hc3Rlci93b21lbi1pbi1oZWFkbGluZXMvd29yZF90aGVtZXNfcmFuay5jc3YiKQpoZWFkbGluZV9leGFtcGxlcyA8LSByZWFkLmNzdigiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZS1wdWRkaW5nL2RhdGEvbWFzdGVyL3dvbWVuLWluLWhlYWRsaW5lcy9oZWFkbGluZXMuY3N2IikKcG9sYXJpdHlfc2l0ZSA8LSByZWFkLmNzdigiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZS1wdWRkaW5nL2RhdGEvbWFzdGVyL3dvbWVuLWluLWhlYWRsaW5lcy9wb2xhcml0eV9jb21wYXJpc29uX3NpdGVfY291bnRyeV90aW1lLmNzdiIpCnBvbGFyaXR5X292ZXJfdGltZSA8LSByZWFkLmNzdigiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZS1wdWRkaW5nL2RhdGEvbWFzdGVyL3dvbWVuLWluLWhlYWRsaW5lcy9wb2xhcml0eV9jb21wYXJpc29uX2NvdW50cnlfdGltZS5jc3YiKQpgYGAKCgpgYGB7ciwgZWNobyA9IEZBTFNFfQpwaXZvdF9jb3VudHJ5X3dvcmQgPC0gZnJlcV9jb3VudHJ5X3dvcmRzICU+JSAKICBwaXZvdF9sb25nZXIoY29scyA9IC1jb3VudHJ5LAogICAgICAgICAgICAgICBuYW1lc190byA9ICJ3b3JkIiwKICAgICAgICAgICAgICAgdmFsdWVzX3RvID0gIm51bWJlciIpICU+JSAKICBmaWx0ZXIod29yZCAhPSAiWCIpICU+JSAKICBuYS5vbWl0KCkKYGBgCgoKIyMgV29tZW4gaW4gSGVhZGxpbmVzIERhdGEKCiMjIyMgVGhlIGRhdGEgdGFrZW4gaW52b2x2ZWQgdGhlIGZyZXF1ZW5jeSBvZiB3b3JkcyB1c2VkIHNvcnRlZCBieSB0aGVtZSBhbmQgZnJlcXVlbmN5IG9mIHdvcmRzIGJ5IGNvdW50cnkuIFRoZSB0aGVtZXMgYXJlIGNyaW1lIGFuZCB2aW9sZW5jZSwgZW1wb3dlcm1lbnQsIGZlbWFsZSBzdGVyZW90eXBlcywgcGVvcGxlIGFuZCBwbGFjZXMsIHJhY2UsIGV0aG5pY2l0eSBhbmQgaWRlbnRpdHksIGFuZCBubyB0aGVtZS4gVGhlIHdvcmRzIHdlcmUgYWxzbyByYW5rZWQgYnkgdGhlbWUgYmFzZWQgb24gZnJlcXVlbmN5IG9mIHVzZS4gVGhlIG5ld3Mgc2l0ZXMgd2VyZSBhbHNvIGFzc2lnbmVkIHZhbHVlcyBmb3IgYmlhcyBhbmQgcG9sYXJpdHkgZm9yIGluZGl2aWRpdWFsIGFydGljbGVzIGFuZCBvdmVyYWxsLiBUaGUgc2l0ZXMgd2VyZSBnaXZlbiBhIGJhc2UgcG9sYXJpdHkgZm9yIGFsbCBhcnRpY2xlcyBhbmQgYSBwb2xhcml0eSBmb3IgdGhlaXIgYXJ0aWNsZXMgdGhhdCBkaXNjdXNzIHdvbWVuLiBIZXJlIGFyZSBhIGZldyBleGFtcGxlcyBvZiByZWFsIGhlYWRsaW5lcyBwdWJsaXNoZWQgYnkgbmV3cyBzaXRlcy4KXG4KCgohW10oaGVhZGxpbmVzX2dyYXBoaWMuanBnKQoKCioqKgoKCiMjIFdvcmRzIEFwcGVhcmluZyBpbiBIZWFkbGluZXNcbgoKCiMjIyBGcmVxZW5jeSBwZXIgVGhlbWUgXG4KCiMjIyMjIEEgY3VtdWxhdGl2ZSBiYXIgZ3JhcGggZm9yIHRoZSB3b3JkcyB1c2VkIHRvIGRlc2NyaWJlIHdvbWVuIHVzZWQgaW4gaGVhZGxpbmVzLiBUaGV5IGFyZSBkaXZpZGVkIGludG8gNSBtYWluIGNhdGVnb3JpZXMgd2l0aCBjcmltZSBhbmQgdmlvbGVuY2UgaGF2aW5nIHRoZSBtb3N0IHdvcmRzIGFuZCB0aGUgaGlnaGVzdCBmcmVxdWVuY3kuIFRoZSBncmFwaCBpcyBpbnRlcmFjdGl2ZSBzbyBlYWNoIHdvcmQgY2FuIGJlIGhpZ2hsaWdodGVkIHdpdGggdGhlIGluZGl2aWR1YWwgd29yZCBhbmQgZnJlcXVlbmN5LlxuCgoKYGBge3IsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0V9CnBpdm90X3dvcmRzIDwtIGZyZXFfdGhlbWVfd29yZHMgJT4lIAogIHBpdm90X2xvbmdlcihjb2xzID0gLXRoZW1lLAogICAgICAgICAgICAgICBuYW1lc190byA9ICJ3b3JkIiwKICAgICAgICAgICAgICAgdmFsdWVzX3RvID0gImZyZXEiKSAlPiUgCiAgbmEub21pdCgpCgp3b3JkX3Bsb3QgPC0gcGl2b3Rfd29yZHMgJT4lIAogIGZpbHRlcih0aGVtZSAhPSAiTm8gdGhlbWUiKSAlPiUgCiAgZ2dwbG90KGFlcyh4ID0gdGhlbWUsIAogICAgICAgICAgICAgeSA9IGZyZXEsIAogICAgICAgICAgICAgZmlsbCA9IGZjdF9yZW9yZGVyKHRoZW1lLCB3b3JkKSwKICAgICAgICAgICAgIHRleHQgPSBwYXN0ZSgid29yZDoiLCB3b3JkKSkpICsKICAgIGdlb21fY29sKGNvbG9yID0gImJsYWNrIikgKwogICAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYygiIzVjNzFkMSIsICIjMzE0Mzk0IiwgIiM1NjI3YTgiLCAiIzg1MzZjZiIsICIjOTQyZjk5IiwgIiNhODM4YzkiKSkgKwogICAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKSArCiAgICBsYWJzKHRpdGxlID0gIkN1bXVsYXRpdmUgRnJlcXVlbmN5IG9mIFdvcmRzIGRlc2NyaWJpbmcgV29tZW4gaW4gSGVhZGxpbmVzIiwKICAgICAgIHggPSAiIiwKICAgICAgIHkgPSAiRnJlcXVlbmN5IikrCiAgICB0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41KSkKCgpnZ3Bsb3RseSh3b3JkX3Bsb3QsCiAgICAgICAgIHRvb2x0aXAgPSBjKCJ5IiwgInRleHQiKSkKYGBgCgojIyMgVG9wIEZpdmUgV29yZHMgcGVyIFRoZW1lCiMjIyMjIFRoZSB3b3JkcyB0YWtlbiBmcm9tIGhlYWRsaW5lcyBhY3Jvc3MgZGlmZmVyZW50IG5ld3Mgc2l0ZXMgd2VyZSBzb3J0ZWQgaW50byB0aGVtZSBjYXRlZ29yaWVzIGFuZCByYW5rZWQgYnkgb2NjdXJyZW5jZS4gVGhlIGZvbGxvd2luZyBjb2x1bW4gY2hhcnQgZGVzY3JpYmVzIHRoZSB0b3AgZml2ZSB3b3JkcyB1c2VkIHNvcnRlZCBieSB0aGVtZSB3aXRoIHRoZSB3b3JkICdtYW4nIGFwcGVhcmluZyBhbG1vc3QgdHJpcGxlIHRoZSBhdmVyYWdlIHdvcmQgdXNlLiBDcmltZSBhbmQgdmlvbGVuY2UgaGF2ZSB0aGUgaGlnaGVzdCBhdmVyYWdlIHdvcmQgY291bnQgb2YgYW55IHRoZW1lLiAKXG4KCmBgYHtyLCBlY2hvPUZBTFNFfQp3b3JkX3RoZW1lX3JhbmsgJT4lIAogIGZpbHRlcihgcmFua2AgPCA2KSAlPiUgCiAgc2VsZWN0KCFgWGApICU+JSAKICBnZ3Bsb3QoYWVzKHkgPSBmY3RfcmVvcmRlcih3b3JkLCB0aGVtZSksIHggPSBjb3VudCkpICsKICBnZW9tX2NvbChhZXMoZmlsbCA9IHRoZW1lKSkrCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYygiIzVjNzFkMSIsICIjMzE0Mzk0IiwgIiM1NjI3YTgiLCAiIzg1MzZjZiIsICIjOTQyZjk5IiwgIiNhODM4YzkiKSkgKwogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKSsKICBsYWJzKHRpdGxlID0gIiIsCiAgICAgICB5ID0gIiIsCiAgICAgICB4ID0gIiIpCmBgYAoKKioqIAoKIyMgRGF0YSB0YWtlbiBieSBDb3VudHJ5ClxuCgojIyMgQ291bnRyeSBNYXBcbgoKIyMjIyMgRGF0YSB3YXMgdGFrZW4gZnJvbSBuZXdzIHNpdGVzIGZyb20gZm91ciBkaWZmZXJlbnQgY291bnRyaWVzIHdpdGggdmFyeWluZyBudW1iZXJzIG9mIG5ld3Mgc291cmNlcyB1c2VkLiBGcm9tIHRoZSBVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2EsIDg2IG5ldyBzaXRlcyB3ZXJlIHVzZWQuIEZyb20gdGhlIFVuaXRlZCBLaW5nZG9tLCA0MSBuZXdzIHNpdGVzIHdlcmUgdXNlZC4gRnJvbSBTb3V0aCBBZnJpY2EsIDIzIG5ld3Mgc2l0ZXMgd2VyZSB1c2VkLiBGcm9tIEluZGlhLCAzNiBuZXdzIHNpdGVzIHdlcmUgdXNlZC4gClxuCgpgYGB7ciwgZmlnLmFsdD0gIkEgd29ybGQgbWFwIHdpdGggdGhlIFVTQSwgdGhlIFVLLCBTb3V0aCBBZnJpY2EsIGFuZCBJbmRpYSBjb2xvcmVkIGluIGdyZWVuIHRvIHNpZ25pZnkgd2hlcmUgZGF0YSB3YXMgdGFrZW4gZnJvbS4iLCBlY2hvPUZBTFNFLCB3YXJuaW5nID0gRkFMU0V9CndvcmxkX21hcCA8LSBtYXBfZGF0YSgid29ybGQiKQoKaGVhZGxpbmVfc2l0ZSAlPiUgCiAgZ3JvdXBfYnkoY291bnRyeV9vZl9wdWIpICU+JSAKICBzdW1tYXJpc2UoYmlhc19jb3VudHJ5ID0gbWVhbihiaWFzKSkgJT4lIAogIGdncGxvdCgpICsKICAgIGdlb21fbWFwKGRhdGEgPSB3b3JsZF9tYXAsIG1hcCA9IHdvcmxkX21hcCwKICAgICAgICAgICAgIGFlcyhsb25nLCBsYXQsIG1hcF9pZCA9IHJlZ2lvbiksCiAgICAgICAgICAgICBmaWxsID0gImxpZ2h0Z3JheSIpKwogICAgZ2VvbV9tYXAobWFwID0gd29ybGRfbWFwLAogICAgICAgICAgICBhZXMobWFwX2lkID0gYGNvdW50cnlfb2ZfcHViYCksCiAgICAgICAgICAgIGZpbGwgPSAicHVycGxlNCIsCiAgICAgICAgICAgIGNvbG9yID0gInB1cnBsZTQiKSsKICAgIGV4cGFuZF9saW1pdHMoeCA9IHdvcmxkX21hcCRsb25nLCB5ID0gd29ybGRfbWFwJGxhdCkgKyAKICAgIHRoZW1lX21hcCgpCmBgYAoKIyMjIEJpYXMgU2NvcmUgYnkgQ291bnRyeVxuCiMjIyMjIFRoZSBhdmVyYWdlIGJpYXMgb2YgbmV3cyBzaXRlcyBvZnRlbiB2YXJpZXMgZnJvbSB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBiaWFzIHZhbHVlcyBnaXZlbiB0byBkaWZmZXJlbnQgaGVhZGxpbmVzLiBUaGUgZm9sbG93aW5nIGNvbHVtbiBjaGFydCBkaXNwbGF5cyB0aGUgbWVhbiBiaWFzIGJ5IGNvdW50cnkgYWxvbmcgd2l0aCB0aGUgbWF4aW11bSBiaWFzIG9mIGEgaGVhZGxpbmUgcHVibGlzaGVkIGJ5IGEgc2l0ZSBpbiB0aGUgY291bnRyeS4gVGhlIG1pbmltdW0gYmlhcyBzY29yZSBpcyB6ZXJvIGZvciBhbGwgY291bnRyaWVzIHNvIG5vIHZpc3VhbCByZXByZXNlbnRhdGlvbiB3YXMgYWRkZWQuClxuCgpgYGB7ciwgZWNobz1GQUxTRX0KaGVhZGxpbmVfc2l0ZSAlPiUKICBncm91cF9ieShjb3VudHJ5X29mX3B1YikgJT4lCiAgc3VtbWFyaXplKG1lYW5fYmlhcyA9IG1lYW4oYmlhcyksIG1heF9iaWFzID0gbWF4KGJpYXMpKSAlPiUgCiAgZ2dwbG90KCkrCiAgZ2VvbV9jb2woYWVzKHkgPSBjb3VudHJ5X29mX3B1YiwgeCA9IG1heF9iaWFzKSwgCiAgICAgICAgICAgZmlsbCA9ICIjYzJiMWUzIiwgd2lkdGggPSAuNzUpKwogIGdlb21fY29sKGFlcyh5ID0gY291bnRyeV9vZl9wdWIsIHggPSBtZWFuX2JpYXMpLCAKICAgICAgICAgICB3aWR0aCA9IC41LCBmaWxsID0gInB1cnBsZTQiKSsKICBnZW9tX3RleHQoYWVzKHk9IGNvdW50cnlfb2ZfcHViLCB4ID0gbWVhbl9iaWFzLCBsYWJlbCA9IHJvdW5kKG1lYW5fYmlhcywgMykpLAogICAgICAgICAgICBoanVzdCA9IC0wLjIsIHNpemUgPSAzLCBwb3NpdGlvbiA9IHBvc2l0aW9uX2RvZGdlKHdpZHRoID0gMSkpKwogIGdlb21fdGV4dChhZXMoeT0gY291bnRyeV9vZl9wdWIsIHggPSBtYXhfYmlhcywgbGFiZWwgPSByb3VuZChtYXhfYmlhcywgMykpLAogICAgICAgICAgICBoanVzdCA9IC0wLjIsIHNpemUgPSAzLCBwb3NpdGlvbiA9IHBvc2l0aW9uX2RvZGdlKHdpZHRoID0gMSkpKwogIHNjYWxlX3hfY29udGludW91cyhsaW1pdHMgPSBjKDAsIDEpKSsKICBsYWJzKHRpdGxlID0gIkF2ZXJhZ2UgYW5kIE1heGltdW0gQmlhcyBTY29yZSIsCiAgICAgICB4ID0gIkJpYXMiLAogICAgICAgeSA9ICIiKSsKICB0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41KSwKICAgICAgICBwYW5lbC5ncmlkLm1pbm9yLnggPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgcGFuZWwuZ3JpZC5tYWpvci55ID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIHBhbmVsLmdyaWQubWlub3IueSA9IGVsZW1lbnRfYmxhbmsoKSwpCmBgYAoKKioqCgojIyBQb2xhcml0eSBvZiBXb3JkcwpcbgoKIyMjIFBvbGFyaXR5IG92ZXIgVGltZVxuCiMjIyMjIEluIHRoaXMgZ3JhcGgsIHdlIHZpc3VhbGl6ZSBob3cgdGhlIHBvbGFyaXR5IG9mIGhlYWRsaW5lcyBoYXMgY2hhbmdlZCBvdmVyIHRoZSBwYXN0IHRlbiB5ZWFycy4gVGhlIHBvbGFyaXR5IHNjb3JlcyByZXByZXNlbnQgaG93IHNlbnNhdGlvbmFsaXplZCBhIGhlYWRsaW5lIGlzLiBTZW5zYXRpb25hbCBoZWFkbGluZXMgc2FjcmlmaWNlIGFjY3VyYWN5IGluIGFuIGF0dGVtcHQgdG8gcHJvdm9rZSBhbiBlbW90aW9uYWwgcmVzcG9uc2UgZnJvbSByZWFkZXJzLiBUaGV5IGFyZSBkZXNpZ25lZCB0byBnZW5lcmF0ZSBpbnRlcmVzdCB0aHJvdWdoIGVtb3Rpb25hbCBtYW5pcHVsYXRpb24uIEluIGdlbmVyYWwsIHRoZSBwb2xhcml0eSBvZiBuZXdzIGhlYWRsaW5lcyBhYm91dCB3b21lbiBpcyBoaWdoZXIgdGhhbiB0aGUgcG9sYXJpdHkgZm9yIG90aGVyIGhlYWRsaW5lcy4gSW4gdGhlIHBhc3QgdGVuIHllYXJzLCBwb2xhcml0eSBoYXMgaW5jcmVhc2VkLCBhbmQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgcG9sYXJpdHkgb2YgaGVhZGxpbmVzIGFib3V0IHdvbWVuIGFuZCB0aGUgcG9sYXJpdHkgb2YgZ2VuZXJhbCBoZWFkbGluZXMgaGFzIHdpZGVuZWQuClxuCgpgYGB7ciwgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRX0KcG9sYXJpdHlfdGltZV9hbmltIDwtIHBvbGFyaXR5X292ZXJfdGltZSAlPiUgCiAgZ3JvdXBfYnkoYHllYXJgKSAlPiUgCiAgc3VtbWFyaXNlKHdvbWVuX21lYW4gPSBtZWFuKGB3b21lbl9wb2xhcml0eV9tZWFuYCksCiAgICAgICAgICAgIGFsbF9tZWFuID0gbWVhbihgYWxsX3BvbGFyaXR5X21lYW5gKSwKICAgICAgICAgICAgeWVhcikgJT4lIAogIHVuZ3JvdXAoKSAlPiUgCiAgZ2dwbG90KCkrCiAgZ2VvbV9saW5lKGFlcyh4PWB5ZWFyYCwgeT1gd29tZW5fbWVhbmApLCBjb2xvciA9ICJwdXJwbGU0Iiwgc2UgPSBGQUxTRSkrCiAgZ2VvbV9saW5lKGFlcyh4PWB5ZWFyYCwgeT1gYWxsX21lYW5gKSwgY29sb3IgPSAiYmxhY2siLCBzZSA9IEZBTFNFKSsKICBnZW9tX3BvaW50KGFlcyh4PWB5ZWFyYCwgeT1gd29tZW5fbWVhbmApLAogICAgICAgICAgICAgY29sb3IgPSAiYmxhY2siLCBmaWxsID0gIiNjMmIxZTMiLAogICAgICAgICAgICAgc2l6ZSA9IDUsIHN0cm9rZSA9IDIsIHNoYXBlID0gMjEpICsKICBnZW9tX3BvaW50KGFlcyh4PWB5ZWFyYCwgeT1gYWxsX21lYW5gKSwgc2l6ZSA9IDIuNSkrCiAgZ2VvbV9sYWJlbChsYWJlbCA9ICJIZWFkbGluZXMgYWJvdXQgXG53b21lbiIsIGFlcyh4PWB5ZWFyYCwgeT0gYHdvbWVuX21lYW5gKSwgCiAgICAgICAgICAgICBjb2xvciA9ICJwdXJwbGU0IiwgcG9zaXRpb24gPSBwb3NpdGlvbl9udWRnZSh4ID0gMCwgeSA9IDAuMDIpKSsKICBnZW9tX2xhYmVsKGxhYmVsID0gIkhlYWRsaW5lcyBhYm91dFxub3RoZXIgdG9waWNzIiwgYWVzKHg9YHllYXJgLCB5PSBgYWxsX21lYW5gKSwKICAgICAgICAgICAgIHBvc2l0aW9uID0gcG9zaXRpb25fbnVkZ2UoeCA9IDAsIHkgPSAwLjAxNjUpKSsKICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gYygyMDEwLCAyMDEyLCAyMDE0LCAyMDE2LCAyMDE4LCAyMDIwKSkrCiAgbGFicyh0aXRsZSA9ICIiLAogICAgICAgeSA9ICIiLAogICAgICAgeCA9ICIiKSsKICB0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41KSwKICAgICAgICBwYW5lbC5ncmlkLm1ham9yLnggPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgcGFuZWwuZ3JpZC5taW5vci54ID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIHBhbmVsLmdyaWQubWFqb3IueSA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBheGlzLmxpbmUueCA9IGVsZW1lbnRfbGluZShjb2xvciA9ICJibGFjayIpKSsKICB0cmFuc2l0aW9uX3JldmVhbCh5ZWFyKQoKYW5pbV9zYXZlKCJwb2xhcml0eV90aW1lX2FuaW0uZ2lmIiwKICAgICAgICAgIGFuaW1hdGUocG9sYXJpdHlfdGltZV9hbmltLCBlbmRfcGF1c2UgPSAxMCkpCmBgYAoKYGBge3IsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9CmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKCJwb2xhcml0eV90aW1lX2FuaW0uZ2lmIikKYGBgCgojIyMgUG9sYXJpdHkgb2YgTmV3cyBTaXRlc1xuCiMjIyMjIEluIHRoZSBncmFwaCBiZWxvdywgdGhlIGRpZmZlcmVuY2UgaW4gdGhlIGF2ZXJhZ2UgcG9sYXJpdHkgc2NvcmUgYmV0d2VlbiBoZWFkbGluZXMgYWJvdXQgd29tZW4gYW5kIG90aGVyIGhlYWRsaW5lcyBhcmUgc2hvd24gZm9yIGVhY2ggc2l0ZS4gVGhlIHNpdGVzIGFyZSBvcmRlcmVkIGJ5IHRoZSBsYXJnZXN0IGF2ZXJhZ2UgcG9sYXJpdHkgb2YgaGVhZGxpbmVzIGFib3V0IHdvbWVuLiBBbG1vc3QgZXZlcnkgc2l0ZSdzIGhlYWRsaW5lcyBhYm91dCB3b21lbiBhcmUgbW9yZSBwb2xhcml6aW5nIHRoYW4gdGhlaXIgaGVhZGxpbmVzIGFib3V0IG90aGVyIHRvcGljcy4gClxuCgpgYGB7ciwgZmlnLmhlaWdodD0gMjQsIGZpZy53aWR0aD0gOCwgZWNobz1GQUxTRX0KcG9sYXJpdHlfc2l0ZSAlPiUgCiAgZ2dwbG90KCkrCiAgZ2VvbV9zZWdtZW50KGFlcyh4PXBvbGFyaXR5X2Jhc2UsIHhlbmQ9cG9sYXJpdHlfd29tZW4sIHk9ZmN0X3Jlb3JkZXIoc2l0ZSwgcG9sYXJpdHlfd29tZW4pLCB5ZW5kPXNpdGUpLCBzaXplID0gMSkrCiAgZ2VvbV9wb2ludChhZXMoeD1wb2xhcml0eV9iYXNlLCB5ID0gc2l0ZSksIHNpemUgPSAyKSsKICBnZW9tX3BvaW50KGFlcyh4PXBvbGFyaXR5X3dvbWVuLCB5ID0gc2l0ZSksIGNvbG9yID0gImJsYWNrIiwgZmlsbCA9ICIjYzJiMWUzIiwgCiAgICAgICAgICAgICBzaXplID0gMywgc3Ryb2tlID0gMSwgc2hhcGUgPSAyMSkrCiAgbGFicyh0aXRsZSA9ICIiLAogICAgICAgeSA9ICIiLAogICAgICAgeCA9ICJQb2xhcml0eSIpKwogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpLAogICAgICAgIHBhbmVsLmdyaWQubWFqb3IueCA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBwYW5lbC5ncmlkLm1pbm9yLnggPSBlbGVtZW50X2JsYW5rKCkpCmBgYAoKKioqCgojIyBIZWFkbGluZSBFeGFtcGxlc1xuCgpcbgoKYGBge3IsIGVjaG89RkFMU0V9Cmxhc3RfdGhyZWVfaGVhZGxpbmVzIDwtIGhlYWRsaW5lX2V4YW1wbGVzICU+JSAKICByZW5hbWUoIkhlYWRsaW5lIiA9IGBoZWFkbGluZV9ub19zaXRlYCwKICAgICAgICAgIlNpdGUiID0gYHNpdGVgLAogICAgICAgICAiQ291bnRyeSIgPSBgY291bnRyeWAsCiAgICAgICAgICJCaWFzIiA9IGBiaWFzYCkgJT4lCiAgYXJyYW5nZShgQmlhc2ApICU+JQogIGRpc3RpbmN0KFNpdGUsIC5rZWVwX2FsbCA9IFRSVUUpICU+JSAKICBzbGljZSgxOjMpICU+JSAKICBzZWxlY3QoYEhlYWRsaW5lYCwgYFNpdGVgLCBgQ291bnRyeWAsIGBCaWFzYCkKCmxhc3RfdGhyZWVfaGVhZGxpbmVzX3RhYmxlIDwtIGd0KGxhc3RfdGhyZWVfaGVhZGxpbmVzKSAlPiUgCiAgdGFiX2hlYWRlcih0aXRsZSA9ICJMZWFzdCBCaWFzZWQgSGVhZGxpbmUgRXhhbXBsZXMiKSAlPiUgCiAgdGFiX3N0eWxlKHN0eWxlID0gY2VsbF90ZXh0KGNvbG9yID0gInB1cnBsZTQiKSwKICAgICAgICAgICAgbG9jYXRpb25zID0gY2VsbHNfYm9keSgpKQoKbGFzdF90aHJlZV9oZWFkbGluZXNfdGFibGUKYGBgCgpcbgoKYGBge3IsIGVjaG89RkFMU0V9CnRvcF90aHJlZV9oZWFkbGluZXMgPC0gaGVhZGxpbmVfZXhhbXBsZXMgJT4lIAogIHJlbmFtZSgiSGVhZGxpbmUiID0gYGhlYWRsaW5lX25vX3NpdGVgLAogICAgICAgICAiU2l0ZSIgPSBgc2l0ZWAsCiAgICAgICAgICJDb3VudHJ5IiA9IGBjb3VudHJ5YCkgJT4lIAogIGZpbHRlcihTaXRlICE9ICJkYWlseW1haWwuY28udWsiKSAlPiUgCiAgbXV0YXRlKEJpYXMgPSByb3VuZChiaWFzLCBkaWdpdHMgPSAzKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhgQmlhc2ApKSAlPiUKICBkaXN0aW5jdChTaXRlLCAua2VlcF9hbGwgPSBUUlVFKSAlPiUgCiAgc2xpY2UoMTozKSAlPiUgCiAgc2VsZWN0KGBIZWFkbGluZWAsIGBTaXRlYCwgYENvdW50cnlgLCBgQmlhc2ApCgp0b3BfdGhyZWVfaGVhZGxpbmVzX3RhYmxlIDwtIGd0KHRvcF90aHJlZV9oZWFkbGluZXMpICU+JSAKICB0YWJfaGVhZGVyKHRpdGxlID0gIk1vc3QgQmlhc2VkIEhlYWRsaW5lIEV4YW1wbGVzIikgJT4lIAogIHRhYl9zdHlsZShzdHlsZSA9IGNlbGxfdGV4dChjb2xvciA9ICJwdXJwbGU0IiksCiAgICAgICAgICAgIGxvY2F0aW9ucyA9IGNlbGxzX2JvZHkoKSkKCnRvcF90aHJlZV9oZWFkbGluZXNfdGFibGUKYGBgClxuCioqKgoKIyMgTW9yZSBEYXRhIEluZm9ybWF0aW9uXG4KIyMjIERhdGEgQ2FsY3VsYXRpb25zXG4KCgojIyMjIyBQT0xBUklUWSBDQUxDVUxBVElPTlNcbgpXZSBtZWFzdXJlIHBvbGFyaXR5IGJ5IHBlcmZvcm1pbmcgc2VudGltZW50IGFuYWx5c2lzIG9uIGVhY2ggaGVhZGxpbmUgdXNpbmcgdGhlIFZhZGVyIHB5dGhvbiBwYWNrYWdlLCB3aGVyZSBlYWNoIGhlYWRsaW5lIGdldHMgYSBzZW50aW1lbnQgc2NvcmUgZnJvbSAtMSB0byAxIChmcm9tIG1vcmUgbmVnYXRpdmUgdG8gbW9yZSBwb3NpdGl2ZSkuIEJlY2F1c2Ugd2UgYXJlIGludGVyZXN0ZWQgaW4gcG9sYXJpdHksIHdlIHRha2UgdGhlIGFic29sdXRlIHZhbHVlIG9mIGVhY2ggaGVhZGxpbmUncyBzY29yZS5cbgoKIyMjIyMgQklBUyBDQUxDVUxBVElPTlNcbgpXZSBtZWFzdXJlIGdlbmRlciBiaWFzIGJ5IHRyYWNraW5nIHRoZSBjb21iaW5lZCBvY2N1cnJlbmNlIG9mIGdlbmRlcmVkIGxhbmd1YWdlIGFuZCBzb2NpYWwgc3RlcmVvdHlwZXMgdXN1YWxseSBhc3NvY2lhdGVkIHdpdGggd29tZW4uIFdlIGRvIHRoaXMgaW4gdHdvIHN0ZXBzOlxuCgoxKSBXZSBjaGVjayBpZiBhIGhlYWRsaW5lIGNvbnRhaW5zIGdlbmRlcmVkIGxhbmd1YWdlIChpLmUuIOKAnHNwb2tlc3dvbWFuLOKAnSDigJxjaGFpcndvbWFuLOKAnSDigJxzaGUs4oCdIOKAnGhlcizigJ0g4oCcYnJpZGUs4oCdIOKAnGRhdWdodGVyLOKAnSDigJxkYXVnaHRlcnMs4oCdIOKAnGZlbWFsZSzigJ0g4oCcZmlhbmNlZSzigJ0g4oCcZ2lybCzigJ0g4oCcZ2lybGZyaWVuZOKAnSBldGMuKS5cbgoKMikgSWYgaXQgY29udGFpbnMgZ2VuZGVyZWQgbGFuZ3VhZ2UsIHdlIHRoZW4gY291bnQgdGhlIG51bWJlciBvZiB3b3JkcyB0aGF0IGFyZSBjb25zaWRlcmVkIHRvIGJlIHNvY2lhbCBzdGVyZW90eXBlcyBhYm91dCB3b21lbiAoaS5lLiDigJx3ZWFrLOKAnSDigJxtb2Rlc3Qs4oCdIOKAnHZpcmdpbizigJ0g4oCcc2x1dCzigJ0g4oCcd2hvcmUs4oCdIOKAnHNleHks4oCdIOKAnGZlbWluaW5lLOKAnSDigJxzZW5zaXRpdmUs4oCdIOKAnGVtb3Rpb25hbCzigJ0g4oCcZ2VudGxlLOKAnSDigJxzb2Z0LOKAnSDigJxwcmV0dHks4oCdIOKAnGJpdGNoLOKAnSDigJxzZXh1YWzigJ0gZXRjLikuXG4KCkZpbmFsbHksIHdlIG5vcm1hbGl6ZSB0aGlzIGNvdW50IGZvciBhbGwgaGVhZGxpbmVzIHdpdGhpbiBlYWNoIG91dGxldCBhcyBhIHNjb3JlIGJldHdlZW4gMCBhbmQgMSwgYW5kIHdlIGFnZ3JlZ2F0ZSAoaS5lLiBhdmVyYWdlKSB0aGlzIHNjb3JlIGZvciBlYWNoIG91dGxldC5cbgoKIyMjIERhdGEgU291cmNlXG4KaHR0cHM6Ly9naXRodWIuY29tL3RoZS1wdWRkaW5nL2RhdGEvdHJlZS9tYXN0ZXIvd29tZW4taW4taGVhZGxpbmVzCgoKCg==